// 当多次请求只关闭一次loading
let ajaxTimes = 0
// 封装请求方法
export const request = (params) => {
  // 判断是否需要请求头token
  let header = {...params.header};
  if(params.url.includes("my/")){
    // 拼接上请求头需要的token
    header["Authorization"] = wx.getStorageSync('token')
  }
  // 每次请求就加1
  ajaxTimes++;
  // 数据加载loading效果
  wx.showLoading({
    title: '玩命加载中~',
    mask:true
  });
  // 公共路径
  const baseUrl = 'https://api-hmugo-web.itheima.net/api/public/v1/'
  // 使用Promise的方式
  return new Promise((resolve,reject)=>{
    // 发送请求
    wx.request({
      // 要请求的位置和携带的一些信息都当做参数传递过来在这里扩展出来使用
      ...params,
      header:header,
      url:baseUrl+params.url,
      // 成功时的回调(返回请求到的数据)
      success:result => resolve(result.data.message),
      // 失败时的回调(返回失败的信息)
      fail:err => reject(err),
      complete: () => {
        // 每次执行完减一
        ajaxTimes--
        // 最后还等于原始值等于全部请求完了则一次性关闭loading
        if(ajaxTimes === 0) wx.hideLoading() // 关闭loading效果
      }
    })
  })
}